package rbac.service;

import java.util.List;

import rbac.entity.RbacPermission;


/**
 * RBAC service 接口. 负责在 service 层处理<strong>权限</strong>信息.<br>
 * 该接口供开发人员开发阶段编辑权限使用, 系统发布时不应提供此接口.
 * 
 * @author Huadi
 * @author Zoufengyang
 */
public interface PermissionService {

	/**
	 * 返回一个 <code>Permission</code> 包含的 Action 内容.
	 * 
	 * @param permission
	 * @return
	 */
	public String getPermissionContent(RbacPermission permission);

	/**
	 * 返回一个 <code>Permission</code> 包含的 Action 内容.
	 * 
	 * @param permission
	 * @return
	 */
	public List<String> getPermissionContentList(RbacPermission permission);

	/**
	 * 获得一个 <code>Permission</code>.
	 * 
	 * @param id
	 *            <code>Permission</code> ID.
	 * @return <code>RbacPermission</code> 类型的对象. 如果不存在, 返回 <code>null</code>.
	 */
	public RbacPermission getPermission(Integer id);

	/**
	 * 获得所有 <code>Permission</code>.
	 */
	public List<RbacPermission> getAllPermissions();

	/**
	 * 持久化一个 <code>Permission</code> 实体.
	 * 
	 * @param permission
	 */
	public void save(RbacPermission permission);

	/**
	 * 更新一个 <code>Permission</code> 实体.
	 * 
	 * @param permission
	 */
	public void update(RbacPermission permission);

	/**
	 * 删除一个 <code>Permission</code> 实体.
	 * 
	 * @param permission
	 *            <code>Permission</code> 实体.
	 */
	public void delete(RbacPermission permission);

	/**
	 * 删除一个 <code>Permission</code> 实体.
	 * 
	 * @param id
	 *            <code>Permission</code> ID.
	 */
	public void delete(Integer id);

}
